Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is related to #215
After many years using F#+ with Functors, Applicatives and Monads found out that:
|> map
(or qualified map for better type inference) or by using|>>
.When it comes to composed effects we have Monad transformers which are not that great IMHO but it's the best we have so far to compose them, so we can keep writing then as CEs.
For applicatives the situation is much better as although they can be easily composed with
Compose
we can take advantage ofapplicative2
andapplicative3
CEs.Now the missing piece seems to be Functors, right now for piping composed Functors I normally use something like
|>> map ..
(or qualified) which doesn't read bad, type inference is quite good usually but I feel like we should support|>>>
to allow that option, plus eventually we can use|>>> map
for 3-layered Functors, at least until we decide to add|>>>>
.For more information, I find a lot of composed functors in the wild, namely stuff like
Task<Result< >>
which I see many developers using custom CEs for it, but most of the time it doesn't need it as it's code that can be piped.